//package com.cheil.publish;
//
//import com.cheil.publish.service.DashscopeImageModel;
//import com.cheil.publish.service.DashscopeImageModel.DashscopeTaskListResponse;
//import com.cheil.publish.service.DashscopeImageOptions;
//import org.springframework.ai.image.ImagePrompt;
//import org.springframework.ai.image.ImageResponse;
//import org.springframework.retry.support.RetryTemplate;
//import org.springframework.web.client.RestClient;
//
///**
// * Dashscope图像模型使用示例
// */
//public class Main {
//
//    public static void basicCall() {
//        String apiKey = System.getenv("DASHSCOPE_API_KEY");
//        if (apiKey == null || apiKey.isEmpty()) {
//            System.out.println("请设置DASHSCOPE_API_KEY环境变量");
//            return;
//        }
//
//        String prompt = "一间有着精致窗户的花店，漂亮的木质门，摆放着花朵";
//
//        DashscopeImageOptions options = DashscopeImageOptions.builder()
//                .model("wan2.2-t2i-flash")
//                .n(1)
//                .size("1024*1024")
//                .build();
//
//        DashscopeImageModel imageModel = new DashscopeImageModel(
//                apiKey,
//                options,
//                new RetryTemplate(),
//                RestClient.builder());
//
//        try {
//            System.out.println("---同步调用，请稍候----");
//            ImagePrompt imagePrompt = new ImagePrompt(prompt);
//            ImageResponse result = imageModel.call(imagePrompt);
//
//            if (!result.getResults().isEmpty()) {
//                System.out.println("生成的图像URL: " + result.getResult().getOutput().getUrl());
//            } else {
//                System.out.println("未能生成图像");
//            }
//        } catch (Exception e) {
//            System.out.println("调用失败: " + e.getMessage());
//            e.printStackTrace();
//        }
//    }
//
//    public static void listTasks() {
//        String apiKey = System.getenv("DASHSCOPE_API_KEY");
//        if (apiKey == null || apiKey.isEmpty()) {
//            System.out.println("请设置DASHSCOPE_API_KEY环境变量");
//            return;
//        }
//
//        DashscopeImageOptions options = DashscopeImageOptions.builder()
//                .model("wan2.2-t2i-flash")
//                .build();
//
//        DashscopeImageModel imageModel = new DashscopeImageModel(
//                apiKey,
//                options,
//                new RetryTemplate(),
//                RestClient.builder());
//
//        try {
//            System.out.println("---获取任务列表----");
//            DashscopeTaskListResponse response = imageModel.listTasks();
//
//            if (response != null && response.data != null && response.data.tasks != null) {
//                System.out.println("总任务数: " + response.data.total);
//                System.out.println("任务列表:");
//                response.data.tasks.forEach(task -> {
//                    System.out.println("  任务ID: " + task.taskId);
//                    System.out.println("  任务状态: " + task.taskStatus);
//                    System.out.println("  模型: " + task.model);
//                    System.out.println("  提交时间: " + task.submitTime);
//                    System.out.println("  完成时间: " + task.completeTime);
//                    System.out.println();
//                });
//            } else {
//                System.out.println("没有找到任务");
//            }
//        } catch (Exception e) {
//            System.out.println("获取任务列表失败: " + e.getMessage());
//            e.printStackTrace();
//        }
//    }
//
//    public static void fetchTask() {
//        String apiKey = System.getenv("DASHSCOPE_API_KEY");
//        if (apiKey == null || apiKey.isEmpty()) {
//            System.out.println("请设置DASHSCOPE_API_KEY环境变量");
//            return;
//        }
//
//        // 替换为实际的任务ID
//        String taskId = "your-task-id";
//
//        DashscopeImageOptions options = DashscopeImageOptions.builder()
//                .model("wan2.2-t2i-flash")
//                .build();
//
//        DashscopeImageModel imageModel = new DashscopeImageModel(
//                apiKey,
//                options,
//                new RetryTemplate(),
//                RestClient.builder());
//
//        try {
//            System.out.println("---获取任务详情----");
//            // 需要替换taskId为实际的任务ID
//            var response = imageModel.fetchTask(taskId);
//
//            if (response != null) {
//                System.out.println("请求ID: " + response.requestId);
//                if (response.output != null) {
//                    System.out.println("输出信息:");
//                    if (response.output.choices != null) {
//                        response.output.choices.forEach(choice -> {
//                            System.out.println("  完成原因: " + choice.finishReason);
//                            if (choice.message != null && choice.message.content != null) {
//                                choice.message.content.forEach(content -> {
//                                    System.out.println("  图像URL: " + content.image);
//                                });
//                            }
//                        });
//                    }
//                }
//            } else {
//                System.out.println("未找到任务详情");
//            }
//        } catch (Exception e) {
//            System.out.println("获取任务详情失败: " + e.getMessage());
//            e.printStackTrace();
//        }
//    }
//
//    public static void main(String[] args) {
//        try {
//            basicCall();
//            // listTasks();
//            // fetchTask();
//        } catch (Exception e) {
//            System.out.println(e.getMessage());
//            e.printStackTrace();
//        }
//    }
//}